<?php

namespace CHOMP\SGIBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;

/**
 * @ORM\Entity(repositoryClass="CHOMP\SGIBundle\Entity\WorkflowRepository")
 * @ORM\Table(name="workflow", uniqueConstraints={@ORM\UniqueConstraint(name="desde_hasta_idx", columns={"desde_id", "hasta_id"})})
 * @UniqueEntity(
 *		fields = {"desde","hasta"},
 *		message = "Ya existe un workflow con esa combinación de estado inicial y final"
 *		)
 */
 class Workflow
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
	 * @ORM\ManyToOne(targetEntity="Estado")
	 * @ORM\JoinColumn(name="desde_id", referencedColumnName="id", nullable=false)
	 * @Assert\NotNull(message = "El campo no puede estar en blanco.")
     */
	protected $desde;
	
	/**
	 * @ORM\ManyToOne(targetEntity="Estado")
	 * @ORM\JoinColumn(name="hasta_id", referencedColumnName="id", nullable=false)
	 * @Assert\NotNull(message = "El campo no puede estar en blanco.")
     */
	protected $hasta;

	/**
	 * @ORM\Column(type="boolean", nullable=false)
	 * @Assert\NotNull(message = "El campo no puede estar en blanco.")
	 * @Assert\Choice(choices = {true, false}, message = "Elija un valor.")
	 */
	protected $borrado;

	
	
	/**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set desde
     *
     * @param \CHOMP\SGIBundle\Entity\Estado $desde
     * @return Workflow
     */
    public function setDesde(\CHOMP\SGIBundle\Entity\Estado $desde = null)
    {
        $this->desde = $desde;
    
        return $this;
    }

    /**
     * Get desde
     *
     * @return \CHOMP\SGIBundle\Entity\Estado 
     */
    public function getDesde()
    {
        return $this->desde;
    }

    /**
     * Set hasta
     *
     * @param \CHOMP\SGIBundle\Entity\Estado $hasta
     * @return Workflow
     */
    public function setHasta(\CHOMP\SGIBundle\Entity\Estado $hasta = null)
    {
        $this->hasta = $hasta;
    
        return $this;
    }

    /**
     * Get hasta
     *
     * @return \CHOMP\SGIBundle\Entity\Estado 
     */
    public function getHasta()
    {
        return $this->hasta;
    }

    /**
     * Set borrado
     *
     * @param boolean $borrado
     * @return Workflow
     */
    public function setBorrado($borrado)
    {
        $this->borrado = $borrado;
    
        return $this;
    }

    /**
     * Get borrado
     *
     * @return boolean 
     */
    public function getBorrado()
    {
        return $this->borrado;
    }
}